package co.jp.roomy;

import java.util.ArrayList;
import java.util.List;

import co.jp.roomy.vo.Heya;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CompoundButton;
import android.widget.ListView;
import android.widget.ToggleButton;
import android.widget.CompoundButton.OnCheckedChangeListener;


/**
 * 部屋一覧表示アクティビティ
 */
public class HeyaListActivity extends Activity {

	private boolean delflg = false;
	
	@Override
	public void onCreate(Bundle bundle) {
		super.onCreate(bundle);
		// 自動生成されたR.javaの定数を指定してXMLからレイアウトを生成
		setContentView(R.layout.heya_list);

		ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggleButton);
		toggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
				//トグルキーが変更された際に呼び出される
				if (isChecked) {
					delflg = true;
				} else {
					delflg = false;
				}
			}
		});
		
		
		// XMLで定義したListViewのIDを読み込みListViewを生成します。
		final ListView listView = (ListView) findViewById(R.id.list);
		
		// intentからキー値を読み取り、変数に格納しローカライズする。
		String[] data = getIntent().getStringArrayExtra(this.getString(R.string.my_heya_list_key));
		List<String> list = new ArrayList<String>();
		// 配列をListに詰め替える（配列のままAdapterに渡しても表示は可能）
		for (String japan: data) {
			list.add(japan);
		}
		
		// このコンテキストに、シンプルな画面体裁で、部屋リストを順番に設定する。
		final ArrayAdapter<String> arrayAdapter = new CustomAdapter(this,
				android.R.layout.simple_list_item_1, list);

		// 生成したListViewに表示用アダプタを設定する
		listView.setAdapter(arrayAdapter);
		
		
		// リストビューのアイテムがクリックされた時に呼び出されるコールバックリスナーを登録します
		listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
			@Override
			public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
				ListView listView = (ListView) parent;
				//クリックされたアイテムを取得します。
				final String item = (String) listView.getItemAtPosition(position);
				
				//削除フラグが立っている時に確認し部屋を削除する
				if (delflg) {
					final AlertDialog.Builder builder = new AlertDialog.Builder(HeyaListActivity.this);
					builder.setCancelable(true);
					builder.setMessage(HeyaListActivity.this.getString(R.string.deleteConfirmation));
					//OKボタンの設定
					builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialog, int id) {
							//TODO 部屋削除
						}
					});
					//キャンセルボタン設定
					builder.setNegativeButton("CANCELL", new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialog, int id) {
							dialog.cancel();
						}
					});
					builder.show();
				} else {
					Heya heya = new Heya();
					heya.setHeyaName(item);
//					heya.setHeyaSize("sinnkisize");
					
					Intent intent = new Intent(HeyaListActivity.this, MadoriActivity.class);
					intent.putExtra(HeyaListActivity.this.getString(R.string.heyaKey), heya);
					startActivity(intent);
				}
			}
		});
	}
}

class CustomAdapter extends ArrayAdapter<String> {
	public CustomAdapter(Context context, int textViewResourceld, List<String> objects) {
		super(context, textViewResourceld, objects);
	}
	
	@Override
	public View getView(final int position, View convertView, ViewGroup parent) {
		final View view = super.getView(position, convertView, parent);
		//奇数行、偶数行で交互にカラーリングする。
		if (position % 2 != 0) {
			view.setBackgroundColor(Color.RED);
		} else {
			view.setBackgroundColor(Color.CYAN);
		}
		return view;
	}
}
